package com.yxym.poly.detail_;

public class PolyDetail {
    public static void main(String[] args) {
        //Animal animal1 = new Animal();
        //animal1.eat();
        Animal animal = new Cat();//编译类型为Animal，运行类型为Cat
        //向上转型父类的引用指向子类的对象
        //父类类型  引用名 = new 子类类型
        System.out.println(animal.name);
        Cat cat = (Cat) (animal);//向下转型，父类的引用转为子类的引用
        cat.catchMouse();//编译类型Cat，运行类型Cat
//        animal.eat();
//        animal.run();
//        animal.sleep();
        //Object obj = new Cat();//Object也是Cat父类

        //可以调用父类的所用成员，不能调用子类的特有成员
        //最终的运行结果由子类具体实现，直到找到对应的方法，然后输出
    }
}